gdk: Add gdk_event_get_seat()
authorCarlos Garnacho <carlosg@gnome.org>
Mon, 22 Jun 2020 23:14:53 +0000 (01:14 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Tue, 23 Jun 2020 21:42:53 +0000 (23:42 +0200)
It currently fetches the seat from the event device, will be changed
in future commits.

gdk/gdkevents.c
gdk/gdkevents.h

index c9ad0df30830272a4c2e9f238074d55e75217875..aacf5a9cc0cbfdfd24cebb79365e4f1115e75843 100644 (file)
@@ -1185,6 +1185,22 @@ gdk_event_get_surface (GdkEvent *event)
   return event->surface;
 }
 
+/**
+ * gdk_event_get_seat:
+ * @event: a #GdkEvent.
+ *
+ * Returns the seat that originated the event.
+ *
+ * Returns: (nullable) (transfer none): a #GdkSeat.
+ */
+GdkSeat *
+gdk_event_get_seat (GdkEvent *event)
+{
+  g_return_val_if_fail (GDK_IS_EVENT (event), NULL);
+
+  return event->device ? gdk_device_get_seat (event->device) : NULL;
+}
+
 /**
  * gdk_event_get_device:
  * @event: a #GdkEvent.
index 9abb9a96cd237e25c78c1380103d97137f952fa1..53bd51b98c5917a11780e620671d87a0cdad7dbc 100644 (file)
@@ -344,6 +344,9 @@ GdkEventType            gdk_event_get_event_type        (GdkEvent *event);
 GDK_AVAILABLE_IN_ALL
 GdkSurface *            gdk_event_get_surface           (GdkEvent *event);
 
+GDK_AVAILABLE_IN_ALL
+GdkSeat *               gdk_event_get_seat              (GdkEvent *event);
+
 GDK_AVAILABLE_IN_ALL
 GdkDevice *             gdk_event_get_device            (GdkEvent *event);